//package com.baizhi.service;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.stereotype.Component;
//
//import java.lang.reflect.InvocationHandler;
//import java.lang.reflect.Method;
//import java.lang.reflect.Proxy;
//
///**
// * 代理者工具类
// */
//@Component
//public class ProxyUtil implements InvocationHandler{
//
//    //被代理者，真实角色
//    @Autowired
//    private UserService obj;
//
//    /**
//     * 成成代理对象的额方法
//     * @param obj
//     * @return
//     */
//    @Bean
//    public UserService newProxyInstance(UserService obj){
//        this.obj = obj;
//        return (UserService) Proxy.newProxyInstance(this.obj.getClass().getClassLoader(),this.obj.getClass().getInterfaces(),this);
//    }
//
//    /**
//     *
//     * @param proxy 具体的代理对象
//     * @param method 代理对用具有的方法(真实角色具有的方法，抽象角色中的方法)
//     * @param args 真实对象的参数
//     */
//    @Override
//    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
//
//        System.out.println("开启日志");
//        System.out.println("权限验证");
//
//        Object obj = method.invoke(this.obj, args);
//
//        System.out.println("统计时间");
//
//        return obj;
//    }
//
//
//}
